0 CpxTRS
↳1 TrsToWeightedTrsProof (BOTH BOUNDS(ID, ID), 0 ms)
↳2 CpxWeightedTrs
↳3 TypeInferenceProof (BOTH BOUNDS(ID, ID), 0 ms)
↳4 CpxTypedWeightedTrs
↳5 CompletionProof (UPPER BOUND(ID), 0 ms)
↳6 CpxTypedWeightedCompleteTrs
↳7 NarrowingProof (BOTH BOUNDS(ID, ID), 0 ms)
↳8 CpxTypedWeightedCompleteTrs
↳9 CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID), 0 ms)
↳10 CpxRNTS
↳11 SimplificationProof (BOTH BOUNDS(ID, ID), 0 ms)
↳12 CpxRNTS
↳13 CpxRntsAnalysisOrderProof (BOTH BOUNDS(ID, ID), 0 ms)
↳14 CpxRNTS
↳15 IntTrsBoundProof (UPPER BOUND(ID), 381 ms)
↳16 CpxRNTS
↳17 IntTrsBoundProof (UPPER BOUND(ID), 73 ms)
↳18 CpxRNTS
↳19 ResultPropagationProof (UPPER BOUND(ID), 4 ms)
↳20 CpxRNTS
↳21 IntTrsBoundProof (UPPER BOUND(ID), 503 ms)
↳22 CpxRNTS
↳23 IntTrsBoundProof (UPPER BOUND(ID), 58 ms)
↳24 CpxRNTS
↳25 ResultPropagationProof (UPPER BOUND(ID), 0 ms)
↳26 CpxRNTS
↳27 IntTrsBoundProof (UPPER BOUND(ID), 352 ms)
↳28 CpxRNTS
↳29 IntTrsBoundProof (UPPER BOUND(ID), 70 ms)
↳30 CpxRNTS
↳31 ResultPropagationProof (UPPER BOUND(ID), 0 ms)
↳32 CpxRNTS
↳33 IntTrsBoundProof (UPPER BOUND(ID), 787 ms)
↳34 CpxRNTS
↳35 IntTrsBoundProof (UPPER BOUND(ID), 343 ms)
↳36 CpxRNTS
↳37 ResultPropagationProof (UPPER BOUND(ID), 0 ms)
↳38 CpxRNTS
↳39 IntTrsBoundProof (UPPER BOUND(ID), 1055 ms)
↳40 CpxRNTS
↳41 IntTrsBoundProof (UPPER BOUND(ID), 679 ms)
↳42 CpxRNTS
↳43 ResultPropagationProof (UPPER BOUND(ID), 0 ms)
↳44 CpxRNTS
↳45 IntTrsBoundProof (UPPER BOUND(ID), 428 ms)
↳46 CpxRNTS
↳47 IntTrsBoundProof (UPPER BOUND(ID), 188 ms)
↳48 CpxRNTS
↳49 ResultPropagationProof (UPPER BOUND(ID), 0 ms)
↳50 CpxRNTS
↳51 IntTrsBoundProof (UPPER BOUND(ID), 418 ms)
↳52 CpxRNTS
↳53 IntTrsBoundProof (UPPER BOUND(ID), 85 ms)
↳54 CpxRNTS
↳55 FinalProof (⇔, 0 ms)
↳56 BOUNDS(1, n^3)
minus(x, 0) → x
minus(s(x), s(y)) → minus(x, y)
quot(0, s(y)) → 0
quot(s(x), s(y)) → s(quot(minus(x, y), s(y)))
app(nil, y) → y
app(add(n, x), y) → add(n, app(x, y))
reverse(nil) → nil
reverse(add(n, x)) → app(reverse(x), add(n, nil))
shuffle(nil) → nil
shuffle(add(n, x)) → add(n, shuffle(reverse(x)))
concat(leaf, y) → y
concat(cons(u, v), y) → cons(u, concat(v, y))
less_leaves(x, leaf) → false
less_leaves(leaf, cons(w, z)) → true
less_leaves(cons(u, v), cons(w, z)) → less_leaves(concat(u, v), concat(w, z))
minus(x, 0) → x [1]
minus(s(x), s(y)) → minus(x, y) [1]
quot(0, s(y)) → 0 [1]
quot(s(x), s(y)) → s(quot(minus(x, y), s(y))) [1]
app(nil, y) → y [1]
app(add(n, x), y) → add(n, app(x, y)) [1]
reverse(nil) → nil [1]
reverse(add(n, x)) → app(reverse(x), add(n, nil)) [1]
shuffle(nil) → nil [1]
shuffle(add(n, x)) → add(n, shuffle(reverse(x))) [1]
concat(leaf, y) → y [1]
concat(cons(u, v), y) → cons(u, concat(v, y)) [1]
less_leaves(x, leaf) → false [1]
less_leaves(leaf, cons(w, z)) → true [1]
less_leaves(cons(u, v), cons(w, z)) → less_leaves(concat(u, v), concat(w, z)) [1]
minus(x, 0) → x [1]
minus(s(x), s(y)) → minus(x, y) [1]
quot(0, s(y)) → 0 [1]
quot(s(x), s(y)) → s(quot(minus(x, y), s(y))) [1]
app(nil, y) → y [1]
app(add(n, x), y) → add(n, app(x, y)) [1]
reverse(nil) → nil [1]
reverse(add(n, x)) → app(reverse(x), add(n, nil)) [1]
shuffle(nil) → nil [1]
shuffle(add(n, x)) → add(n, shuffle(reverse(x))) [1]
concat(leaf, y) → y [1]
concat(cons(u, v), y) → cons(u, concat(v, y)) [1]
less_leaves(x, leaf) → false [1]
less_leaves(leaf, cons(w, z)) → true [1]
less_leaves(cons(u, v), cons(w, z)) → less_leaves(concat(u, v), concat(w, z)) [1]
minus :: 0:s → 0:s → 0:s 0 :: 0:s s :: 0:s → 0:s quot :: 0:s → 0:s → 0:s app :: nil:add → nil:add → nil:add nil :: nil:add add :: a → nil:add → nil:add reverse :: nil:add → nil:add shuffle :: nil:add → nil:add concat :: leaf:cons → leaf:cons → leaf:cons leaf :: leaf:cons cons :: leaf:cons → leaf:cons → leaf:cons less_leaves :: leaf:cons → leaf:cons → false:true false :: false:true true :: false:true |
(a) The obligation is a constructor system where every type has a constant constructor,
(b) The following defined symbols do not have to be completely defined, as they can never occur inside other defined symbols:
quot
shuffle
less_leaves
minus
reverse
concat
app
minus(v0, v1) → 0 [0]
const
Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules:
The TRS has the following type information:
Rewrite Strategy: INNERMOST |
Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules:
The TRS has the following type information:
Rewrite Strategy: INNERMOST |
0 => 0
nil => 0
leaf => 0
false => 0
true => 1
const => 0
app(z', z'') -{ 1 }→ y :|: z'' = y, y >= 0, z' = 0
app(z', z'') -{ 1 }→ 1 + n + app(x, y) :|: n >= 0, z'' = y, z' = 1 + n + x, x >= 0, y >= 0
concat(z', z'') -{ 1 }→ y :|: z'' = y, y >= 0, z' = 0
concat(z', z'') -{ 1 }→ 1 + u + concat(v, y) :|: v >= 0, z' = 1 + u + v, z'' = y, y >= 0, u >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(v, z) :|: v >= 0, z >= 0, z' = 1 + 0 + v, z'' = 1 + 0 + z
less_leaves(z', z'') -{ 3 }→ less_leaves(v, 1 + u'' + concat(v'', z)) :|: v >= 0, z >= 0, z'' = 1 + (1 + u'' + v'') + z, u'' >= 0, z' = 1 + 0 + v, v'' >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(1 + u' + concat(v', v), z) :|: v >= 0, z >= 0, u' >= 0, v' >= 0, z' = 1 + (1 + u' + v') + v, z'' = 1 + 0 + z
less_leaves(z', z'') -{ 3 }→ less_leaves(1 + u' + concat(v', v), 1 + u1 + concat(v2, z)) :|: v >= 0, z >= 0, u' >= 0, v' >= 0, u1 >= 0, z' = 1 + (1 + u' + v') + v, z'' = 1 + (1 + u1 + v2) + z, v2 >= 0
less_leaves(z', z'') -{ 1 }→ 1 :|: z >= 0, z'' = 1 + w + z, w >= 0, z' = 0
less_leaves(z', z'') -{ 1 }→ 0 :|: z'' = 0, z' = x, x >= 0
minus(z', z'') -{ 1 }→ x :|: z'' = 0, z' = x, x >= 0
minus(z', z'') -{ 1 }→ minus(x, y) :|: z' = 1 + x, x >= 0, y >= 0, z'' = 1 + y
minus(z', z'') -{ 0 }→ 0 :|: v0 >= 0, v1 >= 0, z'' = v1, z' = v0
quot(z', z'') -{ 1 }→ 0 :|: y >= 0, z'' = 1 + y, z' = 0
quot(z', z'') -{ 2 }→ 1 + quot(x, 1 + 0) :|: z' = 1 + x, x >= 0, z'' = 1 + 0
quot(z', z'') -{ 2 }→ 1 + quot(minus(x', y'), 1 + (1 + y')) :|: z' = 1 + (1 + x'), x' >= 0, z'' = 1 + (1 + y'), y' >= 0
quot(z', z'') -{ 1 }→ 1 + quot(0, 1 + y) :|: z' = 1 + x, x >= 0, y >= 0, z'' = 1 + y
reverse(z') -{ 2 }→ app(app(reverse(x''), 1 + n' + 0), 1 + n + 0) :|: n >= 0, n' >= 0, z' = 1 + n + (1 + n' + x''), x'' >= 0
reverse(z') -{ 2 }→ app(0, 1 + n + 0) :|: n >= 0, z' = 1 + n + 0
reverse(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 2 }→ 1 + n + shuffle(app(reverse(x1), 1 + n'' + 0)) :|: n >= 0, x1 >= 0, n'' >= 0, z' = 1 + n + (1 + n'' + x1)
shuffle(z') -{ 2 }→ 1 + n + shuffle(0) :|: n >= 0, z' = 1 + n + 0
app(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
app(z', z'') -{ 1 }→ 1 + n + app(x, z'') :|: n >= 0, z' = 1 + n + x, x >= 0, z'' >= 0
concat(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
concat(z', z'') -{ 1 }→ 1 + u + concat(v, z'') :|: v >= 0, z' = 1 + u + v, z'' >= 0, u >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(z' - 1, z'' - 1) :|: z' - 1 >= 0, z'' - 1 >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(z' - 1, 1 + u'' + concat(v'', z)) :|: z' - 1 >= 0, z >= 0, z'' = 1 + (1 + u'' + v'') + z, u'' >= 0, v'' >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(1 + u' + concat(v', v), z'' - 1) :|: v >= 0, z'' - 1 >= 0, u' >= 0, v' >= 0, z' = 1 + (1 + u' + v') + v
less_leaves(z', z'') -{ 3 }→ less_leaves(1 + u' + concat(v', v), 1 + u1 + concat(v2, z)) :|: v >= 0, z >= 0, u' >= 0, v' >= 0, u1 >= 0, z' = 1 + (1 + u' + v') + v, z'' = 1 + (1 + u1 + v2) + z, v2 >= 0
less_leaves(z', z'') -{ 1 }→ 1 :|: z >= 0, z'' = 1 + w + z, w >= 0, z' = 0
less_leaves(z', z'') -{ 1 }→ 0 :|: z'' = 0, z' >= 0
minus(z', z'') -{ 1 }→ z' :|: z'' = 0, z' >= 0
minus(z', z'') -{ 1 }→ minus(z' - 1, z'' - 1) :|: z' - 1 >= 0, z'' - 1 >= 0
minus(z', z'') -{ 0 }→ 0 :|: z' >= 0, z'' >= 0
quot(z', z'') -{ 1 }→ 0 :|: z'' - 1 >= 0, z' = 0
quot(z', z'') -{ 2 }→ 1 + quot(minus(z' - 2, z'' - 2), 1 + (1 + (z'' - 2))) :|: z' - 2 >= 0, z'' - 2 >= 0
quot(z', z'') -{ 1 }→ 1 + quot(0, 1 + (z'' - 1)) :|: z' - 1 >= 0, z'' - 1 >= 0
quot(z', z'') -{ 2 }→ 1 + quot(z' - 1, 1 + 0) :|: z' - 1 >= 0, z'' = 1 + 0
reverse(z') -{ 2 }→ app(app(reverse(x''), 1 + n' + 0), 1 + n + 0) :|: n >= 0, n' >= 0, z' = 1 + n + (1 + n' + x''), x'' >= 0
reverse(z') -{ 2 }→ app(0, 1 + (z' - 1) + 0) :|: z' - 1 >= 0
reverse(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 2 }→ 1 + n + shuffle(app(reverse(x1), 1 + n'' + 0)) :|: n >= 0, x1 >= 0, n'' >= 0, z' = 1 + n + (1 + n'' + x1)
shuffle(z') -{ 2 }→ 1 + (z' - 1) + shuffle(0) :|: z' - 1 >= 0
{ minus } { concat } { app } { quot } { less_leaves } { reverse } { shuffle } |
app(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
app(z', z'') -{ 1 }→ 1 + n + app(x, z'') :|: n >= 0, z' = 1 + n + x, x >= 0, z'' >= 0
concat(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
concat(z', z'') -{ 1 }→ 1 + u + concat(v, z'') :|: v >= 0, z' = 1 + u + v, z'' >= 0, u >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(z' - 1, z'' - 1) :|: z' - 1 >= 0, z'' - 1 >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(z' - 1, 1 + u'' + concat(v'', z)) :|: z' - 1 >= 0, z >= 0, z'' = 1 + (1 + u'' + v'') + z, u'' >= 0, v'' >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(1 + u' + concat(v', v), z'' - 1) :|: v >= 0, z'' - 1 >= 0, u' >= 0, v' >= 0, z' = 1 + (1 + u' + v') + v
less_leaves(z', z'') -{ 3 }→ less_leaves(1 + u' + concat(v', v), 1 + u1 + concat(v2, z)) :|: v >= 0, z >= 0, u' >= 0, v' >= 0, u1 >= 0, z' = 1 + (1 + u' + v') + v, z'' = 1 + (1 + u1 + v2) + z, v2 >= 0
less_leaves(z', z'') -{ 1 }→ 1 :|: z >= 0, z'' = 1 + w + z, w >= 0, z' = 0
less_leaves(z', z'') -{ 1 }→ 0 :|: z'' = 0, z' >= 0
minus(z', z'') -{ 1 }→ z' :|: z'' = 0, z' >= 0
minus(z', z'') -{ 1 }→ minus(z' - 1, z'' - 1) :|: z' - 1 >= 0, z'' - 1 >= 0
minus(z', z'') -{ 0 }→ 0 :|: z' >= 0, z'' >= 0
quot(z', z'') -{ 1 }→ 0 :|: z'' - 1 >= 0, z' = 0
quot(z', z'') -{ 2 }→ 1 + quot(minus(z' - 2, z'' - 2), 1 + (1 + (z'' - 2))) :|: z' - 2 >= 0, z'' - 2 >= 0
quot(z', z'') -{ 1 }→ 1 + quot(0, 1 + (z'' - 1)) :|: z' - 1 >= 0, z'' - 1 >= 0
quot(z', z'') -{ 2 }→ 1 + quot(z' - 1, 1 + 0) :|: z' - 1 >= 0, z'' = 1 + 0
reverse(z') -{ 2 }→ app(app(reverse(x''), 1 + n' + 0), 1 + n + 0) :|: n >= 0, n' >= 0, z' = 1 + n + (1 + n' + x''), x'' >= 0
reverse(z') -{ 2 }→ app(0, 1 + (z' - 1) + 0) :|: z' - 1 >= 0
reverse(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 2 }→ 1 + n + shuffle(app(reverse(x1), 1 + n'' + 0)) :|: n >= 0, x1 >= 0, n'' >= 0, z' = 1 + n + (1 + n'' + x1)
shuffle(z') -{ 2 }→ 1 + (z' - 1) + shuffle(0) :|: z' - 1 >= 0
app(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
app(z', z'') -{ 1 }→ 1 + n + app(x, z'') :|: n >= 0, z' = 1 + n + x, x >= 0, z'' >= 0
concat(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
concat(z', z'') -{ 1 }→ 1 + u + concat(v, z'') :|: v >= 0, z' = 1 + u + v, z'' >= 0, u >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(z' - 1, z'' - 1) :|: z' - 1 >= 0, z'' - 1 >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(z' - 1, 1 + u'' + concat(v'', z)) :|: z' - 1 >= 0, z >= 0, z'' = 1 + (1 + u'' + v'') + z, u'' >= 0, v'' >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(1 + u' + concat(v', v), z'' - 1) :|: v >= 0, z'' - 1 >= 0, u' >= 0, v' >= 0, z' = 1 + (1 + u' + v') + v
less_leaves(z', z'') -{ 3 }→ less_leaves(1 + u' + concat(v', v), 1 + u1 + concat(v2, z)) :|: v >= 0, z >= 0, u' >= 0, v' >= 0, u1 >= 0, z' = 1 + (1 + u' + v') + v, z'' = 1 + (1 + u1 + v2) + z, v2 >= 0
less_leaves(z', z'') -{ 1 }→ 1 :|: z >= 0, z'' = 1 + w + z, w >= 0, z' = 0
less_leaves(z', z'') -{ 1 }→ 0 :|: z'' = 0, z' >= 0
minus(z', z'') -{ 1 }→ z' :|: z'' = 0, z' >= 0
minus(z', z'') -{ 1 }→ minus(z' - 1, z'' - 1) :|: z' - 1 >= 0, z'' - 1 >= 0
minus(z', z'') -{ 0 }→ 0 :|: z' >= 0, z'' >= 0
quot(z', z'') -{ 1 }→ 0 :|: z'' - 1 >= 0, z' = 0
quot(z', z'') -{ 2 }→ 1 + quot(minus(z' - 2, z'' - 2), 1 + (1 + (z'' - 2))) :|: z' - 2 >= 0, z'' - 2 >= 0
quot(z', z'') -{ 1 }→ 1 + quot(0, 1 + (z'' - 1)) :|: z' - 1 >= 0, z'' - 1 >= 0
quot(z', z'') -{ 2 }→ 1 + quot(z' - 1, 1 + 0) :|: z' - 1 >= 0, z'' = 1 + 0
reverse(z') -{ 2 }→ app(app(reverse(x''), 1 + n' + 0), 1 + n + 0) :|: n >= 0, n' >= 0, z' = 1 + n + (1 + n' + x''), x'' >= 0
reverse(z') -{ 2 }→ app(0, 1 + (z' - 1) + 0) :|: z' - 1 >= 0
reverse(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 2 }→ 1 + n + shuffle(app(reverse(x1), 1 + n'' + 0)) :|: n >= 0, x1 >= 0, n'' >= 0, z' = 1 + n + (1 + n'' + x1)
shuffle(z') -{ 2 }→ 1 + (z' - 1) + shuffle(0) :|: z' - 1 >= 0
minus: runtime: ?, size: O(n1) [z'] |
app(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
app(z', z'') -{ 1 }→ 1 + n + app(x, z'') :|: n >= 0, z' = 1 + n + x, x >= 0, z'' >= 0
concat(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
concat(z', z'') -{ 1 }→ 1 + u + concat(v, z'') :|: v >= 0, z' = 1 + u + v, z'' >= 0, u >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(z' - 1, z'' - 1) :|: z' - 1 >= 0, z'' - 1 >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(z' - 1, 1 + u'' + concat(v'', z)) :|: z' - 1 >= 0, z >= 0, z'' = 1 + (1 + u'' + v'') + z, u'' >= 0, v'' >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(1 + u' + concat(v', v), z'' - 1) :|: v >= 0, z'' - 1 >= 0, u' >= 0, v' >= 0, z' = 1 + (1 + u' + v') + v
less_leaves(z', z'') -{ 3 }→ less_leaves(1 + u' + concat(v', v), 1 + u1 + concat(v2, z)) :|: v >= 0, z >= 0, u' >= 0, v' >= 0, u1 >= 0, z' = 1 + (1 + u' + v') + v, z'' = 1 + (1 + u1 + v2) + z, v2 >= 0
less_leaves(z', z'') -{ 1 }→ 1 :|: z >= 0, z'' = 1 + w + z, w >= 0, z' = 0
less_leaves(z', z'') -{ 1 }→ 0 :|: z'' = 0, z' >= 0
minus(z', z'') -{ 1 }→ z' :|: z'' = 0, z' >= 0
minus(z', z'') -{ 1 }→ minus(z' - 1, z'' - 1) :|: z' - 1 >= 0, z'' - 1 >= 0
minus(z', z'') -{ 0 }→ 0 :|: z' >= 0, z'' >= 0
quot(z', z'') -{ 1 }→ 0 :|: z'' - 1 >= 0, z' = 0
quot(z', z'') -{ 2 }→ 1 + quot(minus(z' - 2, z'' - 2), 1 + (1 + (z'' - 2))) :|: z' - 2 >= 0, z'' - 2 >= 0
quot(z', z'') -{ 1 }→ 1 + quot(0, 1 + (z'' - 1)) :|: z' - 1 >= 0, z'' - 1 >= 0
quot(z', z'') -{ 2 }→ 1 + quot(z' - 1, 1 + 0) :|: z' - 1 >= 0, z'' = 1 + 0
reverse(z') -{ 2 }→ app(app(reverse(x''), 1 + n' + 0), 1 + n + 0) :|: n >= 0, n' >= 0, z' = 1 + n + (1 + n' + x''), x'' >= 0
reverse(z') -{ 2 }→ app(0, 1 + (z' - 1) + 0) :|: z' - 1 >= 0
reverse(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 2 }→ 1 + n + shuffle(app(reverse(x1), 1 + n'' + 0)) :|: n >= 0, x1 >= 0, n'' >= 0, z' = 1 + n + (1 + n'' + x1)
shuffle(z') -{ 2 }→ 1 + (z' - 1) + shuffle(0) :|: z' - 1 >= 0
minus: runtime: O(n1) [1 + z''], size: O(n1) [z'] |
app(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
app(z', z'') -{ 1 }→ 1 + n + app(x, z'') :|: n >= 0, z' = 1 + n + x, x >= 0, z'' >= 0
concat(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
concat(z', z'') -{ 1 }→ 1 + u + concat(v, z'') :|: v >= 0, z' = 1 + u + v, z'' >= 0, u >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(z' - 1, z'' - 1) :|: z' - 1 >= 0, z'' - 1 >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(z' - 1, 1 + u'' + concat(v'', z)) :|: z' - 1 >= 0, z >= 0, z'' = 1 + (1 + u'' + v'') + z, u'' >= 0, v'' >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(1 + u' + concat(v', v), z'' - 1) :|: v >= 0, z'' - 1 >= 0, u' >= 0, v' >= 0, z' = 1 + (1 + u' + v') + v
less_leaves(z', z'') -{ 3 }→ less_leaves(1 + u' + concat(v', v), 1 + u1 + concat(v2, z)) :|: v >= 0, z >= 0, u' >= 0, v' >= 0, u1 >= 0, z' = 1 + (1 + u' + v') + v, z'' = 1 + (1 + u1 + v2) + z, v2 >= 0
less_leaves(z', z'') -{ 1 }→ 1 :|: z >= 0, z'' = 1 + w + z, w >= 0, z' = 0
less_leaves(z', z'') -{ 1 }→ 0 :|: z'' = 0, z' >= 0
minus(z', z'') -{ 1 + z'' }→ s :|: s >= 0, s <= 1 * (z' - 1), z' - 1 >= 0, z'' - 1 >= 0
minus(z', z'') -{ 1 }→ z' :|: z'' = 0, z' >= 0
minus(z', z'') -{ 0 }→ 0 :|: z' >= 0, z'' >= 0
quot(z', z'') -{ 1 }→ 0 :|: z'' - 1 >= 0, z' = 0
quot(z', z'') -{ 1 + z'' }→ 1 + quot(s', 1 + (1 + (z'' - 2))) :|: s' >= 0, s' <= 1 * (z' - 2), z' - 2 >= 0, z'' - 2 >= 0
quot(z', z'') -{ 1 }→ 1 + quot(0, 1 + (z'' - 1)) :|: z' - 1 >= 0, z'' - 1 >= 0
quot(z', z'') -{ 2 }→ 1 + quot(z' - 1, 1 + 0) :|: z' - 1 >= 0, z'' = 1 + 0
reverse(z') -{ 2 }→ app(app(reverse(x''), 1 + n' + 0), 1 + n + 0) :|: n >= 0, n' >= 0, z' = 1 + n + (1 + n' + x''), x'' >= 0
reverse(z') -{ 2 }→ app(0, 1 + (z' - 1) + 0) :|: z' - 1 >= 0
reverse(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 2 }→ 1 + n + shuffle(app(reverse(x1), 1 + n'' + 0)) :|: n >= 0, x1 >= 0, n'' >= 0, z' = 1 + n + (1 + n'' + x1)
shuffle(z') -{ 2 }→ 1 + (z' - 1) + shuffle(0) :|: z' - 1 >= 0
minus: runtime: O(n1) [1 + z''], size: O(n1) [z'] |
app(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
app(z', z'') -{ 1 }→ 1 + n + app(x, z'') :|: n >= 0, z' = 1 + n + x, x >= 0, z'' >= 0
concat(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
concat(z', z'') -{ 1 }→ 1 + u + concat(v, z'') :|: v >= 0, z' = 1 + u + v, z'' >= 0, u >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(z' - 1, z'' - 1) :|: z' - 1 >= 0, z'' - 1 >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(z' - 1, 1 + u'' + concat(v'', z)) :|: z' - 1 >= 0, z >= 0, z'' = 1 + (1 + u'' + v'') + z, u'' >= 0, v'' >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(1 + u' + concat(v', v), z'' - 1) :|: v >= 0, z'' - 1 >= 0, u' >= 0, v' >= 0, z' = 1 + (1 + u' + v') + v
less_leaves(z', z'') -{ 3 }→ less_leaves(1 + u' + concat(v', v), 1 + u1 + concat(v2, z)) :|: v >= 0, z >= 0, u' >= 0, v' >= 0, u1 >= 0, z' = 1 + (1 + u' + v') + v, z'' = 1 + (1 + u1 + v2) + z, v2 >= 0
less_leaves(z', z'') -{ 1 }→ 1 :|: z >= 0, z'' = 1 + w + z, w >= 0, z' = 0
less_leaves(z', z'') -{ 1 }→ 0 :|: z'' = 0, z' >= 0
minus(z', z'') -{ 1 + z'' }→ s :|: s >= 0, s <= 1 * (z' - 1), z' - 1 >= 0, z'' - 1 >= 0
minus(z', z'') -{ 1 }→ z' :|: z'' = 0, z' >= 0
minus(z', z'') -{ 0 }→ 0 :|: z' >= 0, z'' >= 0
quot(z', z'') -{ 1 }→ 0 :|: z'' - 1 >= 0, z' = 0
quot(z', z'') -{ 1 + z'' }→ 1 + quot(s', 1 + (1 + (z'' - 2))) :|: s' >= 0, s' <= 1 * (z' - 2), z' - 2 >= 0, z'' - 2 >= 0
quot(z', z'') -{ 1 }→ 1 + quot(0, 1 + (z'' - 1)) :|: z' - 1 >= 0, z'' - 1 >= 0
quot(z', z'') -{ 2 }→ 1 + quot(z' - 1, 1 + 0) :|: z' - 1 >= 0, z'' = 1 + 0
reverse(z') -{ 2 }→ app(app(reverse(x''), 1 + n' + 0), 1 + n + 0) :|: n >= 0, n' >= 0, z' = 1 + n + (1 + n' + x''), x'' >= 0
reverse(z') -{ 2 }→ app(0, 1 + (z' - 1) + 0) :|: z' - 1 >= 0
reverse(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 2 }→ 1 + n + shuffle(app(reverse(x1), 1 + n'' + 0)) :|: n >= 0, x1 >= 0, n'' >= 0, z' = 1 + n + (1 + n'' + x1)
shuffle(z') -{ 2 }→ 1 + (z' - 1) + shuffle(0) :|: z' - 1 >= 0
minus: runtime: O(n1) [1 + z''], size: O(n1) [z'] concat: runtime: ?, size: O(n1) [z' + z''] |
app(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
app(z', z'') -{ 1 }→ 1 + n + app(x, z'') :|: n >= 0, z' = 1 + n + x, x >= 0, z'' >= 0
concat(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
concat(z', z'') -{ 1 }→ 1 + u + concat(v, z'') :|: v >= 0, z' = 1 + u + v, z'' >= 0, u >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(z' - 1, z'' - 1) :|: z' - 1 >= 0, z'' - 1 >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(z' - 1, 1 + u'' + concat(v'', z)) :|: z' - 1 >= 0, z >= 0, z'' = 1 + (1 + u'' + v'') + z, u'' >= 0, v'' >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(1 + u' + concat(v', v), z'' - 1) :|: v >= 0, z'' - 1 >= 0, u' >= 0, v' >= 0, z' = 1 + (1 + u' + v') + v
less_leaves(z', z'') -{ 3 }→ less_leaves(1 + u' + concat(v', v), 1 + u1 + concat(v2, z)) :|: v >= 0, z >= 0, u' >= 0, v' >= 0, u1 >= 0, z' = 1 + (1 + u' + v') + v, z'' = 1 + (1 + u1 + v2) + z, v2 >= 0
less_leaves(z', z'') -{ 1 }→ 1 :|: z >= 0, z'' = 1 + w + z, w >= 0, z' = 0
less_leaves(z', z'') -{ 1 }→ 0 :|: z'' = 0, z' >= 0
minus(z', z'') -{ 1 + z'' }→ s :|: s >= 0, s <= 1 * (z' - 1), z' - 1 >= 0, z'' - 1 >= 0
minus(z', z'') -{ 1 }→ z' :|: z'' = 0, z' >= 0
minus(z', z'') -{ 0 }→ 0 :|: z' >= 0, z'' >= 0
quot(z', z'') -{ 1 }→ 0 :|: z'' - 1 >= 0, z' = 0
quot(z', z'') -{ 1 + z'' }→ 1 + quot(s', 1 + (1 + (z'' - 2))) :|: s' >= 0, s' <= 1 * (z' - 2), z' - 2 >= 0, z'' - 2 >= 0
quot(z', z'') -{ 1 }→ 1 + quot(0, 1 + (z'' - 1)) :|: z' - 1 >= 0, z'' - 1 >= 0
quot(z', z'') -{ 2 }→ 1 + quot(z' - 1, 1 + 0) :|: z' - 1 >= 0, z'' = 1 + 0
reverse(z') -{ 2 }→ app(app(reverse(x''), 1 + n' + 0), 1 + n + 0) :|: n >= 0, n' >= 0, z' = 1 + n + (1 + n' + x''), x'' >= 0
reverse(z') -{ 2 }→ app(0, 1 + (z' - 1) + 0) :|: z' - 1 >= 0
reverse(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 2 }→ 1 + n + shuffle(app(reverse(x1), 1 + n'' + 0)) :|: n >= 0, x1 >= 0, n'' >= 0, z' = 1 + n + (1 + n'' + x1)
shuffle(z') -{ 2 }→ 1 + (z' - 1) + shuffle(0) :|: z' - 1 >= 0
minus: runtime: O(n1) [1 + z''], size: O(n1) [z'] concat: runtime: O(n1) [1 + z'], size: O(n1) [z' + z''] |
app(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
app(z', z'') -{ 1 }→ 1 + n + app(x, z'') :|: n >= 0, z' = 1 + n + x, x >= 0, z'' >= 0
concat(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
concat(z', z'') -{ 2 + v }→ 1 + u + s'' :|: s'' >= 0, s'' <= 1 * v + 1 * z'', v >= 0, z' = 1 + u + v, z'' >= 0, u >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(z' - 1, z'' - 1) :|: z' - 1 >= 0, z'' - 1 >= 0
less_leaves(z', z'') -{ 4 + v'' }→ less_leaves(z' - 1, 1 + u'' + s1) :|: s1 >= 0, s1 <= 1 * v'' + 1 * z, z' - 1 >= 0, z >= 0, z'' = 1 + (1 + u'' + v'') + z, u'' >= 0, v'' >= 0
less_leaves(z', z'') -{ 4 + v' }→ less_leaves(1 + u' + s2, z'' - 1) :|: s2 >= 0, s2 <= 1 * v' + 1 * v, v >= 0, z'' - 1 >= 0, u' >= 0, v' >= 0, z' = 1 + (1 + u' + v') + v
less_leaves(z', z'') -{ 5 + v' + v2 }→ less_leaves(1 + u' + s3, 1 + u1 + s4) :|: s3 >= 0, s3 <= 1 * v' + 1 * v, s4 >= 0, s4 <= 1 * v2 + 1 * z, v >= 0, z >= 0, u' >= 0, v' >= 0, u1 >= 0, z' = 1 + (1 + u' + v') + v, z'' = 1 + (1 + u1 + v2) + z, v2 >= 0
less_leaves(z', z'') -{ 1 }→ 1 :|: z >= 0, z'' = 1 + w + z, w >= 0, z' = 0
less_leaves(z', z'') -{ 1 }→ 0 :|: z'' = 0, z' >= 0
minus(z', z'') -{ 1 + z'' }→ s :|: s >= 0, s <= 1 * (z' - 1), z' - 1 >= 0, z'' - 1 >= 0
minus(z', z'') -{ 1 }→ z' :|: z'' = 0, z' >= 0
minus(z', z'') -{ 0 }→ 0 :|: z' >= 0, z'' >= 0
quot(z', z'') -{ 1 }→ 0 :|: z'' - 1 >= 0, z' = 0
quot(z', z'') -{ 1 + z'' }→ 1 + quot(s', 1 + (1 + (z'' - 2))) :|: s' >= 0, s' <= 1 * (z' - 2), z' - 2 >= 0, z'' - 2 >= 0
quot(z', z'') -{ 1 }→ 1 + quot(0, 1 + (z'' - 1)) :|: z' - 1 >= 0, z'' - 1 >= 0
quot(z', z'') -{ 2 }→ 1 + quot(z' - 1, 1 + 0) :|: z' - 1 >= 0, z'' = 1 + 0
reverse(z') -{ 2 }→ app(app(reverse(x''), 1 + n' + 0), 1 + n + 0) :|: n >= 0, n' >= 0, z' = 1 + n + (1 + n' + x''), x'' >= 0
reverse(z') -{ 2 }→ app(0, 1 + (z' - 1) + 0) :|: z' - 1 >= 0
reverse(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 2 }→ 1 + n + shuffle(app(reverse(x1), 1 + n'' + 0)) :|: n >= 0, x1 >= 0, n'' >= 0, z' = 1 + n + (1 + n'' + x1)
shuffle(z') -{ 2 }→ 1 + (z' - 1) + shuffle(0) :|: z' - 1 >= 0
minus: runtime: O(n1) [1 + z''], size: O(n1) [z'] concat: runtime: O(n1) [1 + z'], size: O(n1) [z' + z''] |
app(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
app(z', z'') -{ 1 }→ 1 + n + app(x, z'') :|: n >= 0, z' = 1 + n + x, x >= 0, z'' >= 0
concat(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
concat(z', z'') -{ 2 + v }→ 1 + u + s'' :|: s'' >= 0, s'' <= 1 * v + 1 * z'', v >= 0, z' = 1 + u + v, z'' >= 0, u >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(z' - 1, z'' - 1) :|: z' - 1 >= 0, z'' - 1 >= 0
less_leaves(z', z'') -{ 4 + v'' }→ less_leaves(z' - 1, 1 + u'' + s1) :|: s1 >= 0, s1 <= 1 * v'' + 1 * z, z' - 1 >= 0, z >= 0, z'' = 1 + (1 + u'' + v'') + z, u'' >= 0, v'' >= 0
less_leaves(z', z'') -{ 4 + v' }→ less_leaves(1 + u' + s2, z'' - 1) :|: s2 >= 0, s2 <= 1 * v' + 1 * v, v >= 0, z'' - 1 >= 0, u' >= 0, v' >= 0, z' = 1 + (1 + u' + v') + v
less_leaves(z', z'') -{ 5 + v' + v2 }→ less_leaves(1 + u' + s3, 1 + u1 + s4) :|: s3 >= 0, s3 <= 1 * v' + 1 * v, s4 >= 0, s4 <= 1 * v2 + 1 * z, v >= 0, z >= 0, u' >= 0, v' >= 0, u1 >= 0, z' = 1 + (1 + u' + v') + v, z'' = 1 + (1 + u1 + v2) + z, v2 >= 0
less_leaves(z', z'') -{ 1 }→ 1 :|: z >= 0, z'' = 1 + w + z, w >= 0, z' = 0
less_leaves(z', z'') -{ 1 }→ 0 :|: z'' = 0, z' >= 0
minus(z', z'') -{ 1 + z'' }→ s :|: s >= 0, s <= 1 * (z' - 1), z' - 1 >= 0, z'' - 1 >= 0
minus(z', z'') -{ 1 }→ z' :|: z'' = 0, z' >= 0
minus(z', z'') -{ 0 }→ 0 :|: z' >= 0, z'' >= 0
quot(z', z'') -{ 1 }→ 0 :|: z'' - 1 >= 0, z' = 0
quot(z', z'') -{ 1 + z'' }→ 1 + quot(s', 1 + (1 + (z'' - 2))) :|: s' >= 0, s' <= 1 * (z' - 2), z' - 2 >= 0, z'' - 2 >= 0
quot(z', z'') -{ 1 }→ 1 + quot(0, 1 + (z'' - 1)) :|: z' - 1 >= 0, z'' - 1 >= 0
quot(z', z'') -{ 2 }→ 1 + quot(z' - 1, 1 + 0) :|: z' - 1 >= 0, z'' = 1 + 0
reverse(z') -{ 2 }→ app(app(reverse(x''), 1 + n' + 0), 1 + n + 0) :|: n >= 0, n' >= 0, z' = 1 + n + (1 + n' + x''), x'' >= 0
reverse(z') -{ 2 }→ app(0, 1 + (z' - 1) + 0) :|: z' - 1 >= 0
reverse(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 2 }→ 1 + n + shuffle(app(reverse(x1), 1 + n'' + 0)) :|: n >= 0, x1 >= 0, n'' >= 0, z' = 1 + n + (1 + n'' + x1)
shuffle(z') -{ 2 }→ 1 + (z' - 1) + shuffle(0) :|: z' - 1 >= 0
minus: runtime: O(n1) [1 + z''], size: O(n1) [z'] concat: runtime: O(n1) [1 + z'], size: O(n1) [z' + z''] app: runtime: ?, size: O(n1) [z' + z''] |
app(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
app(z', z'') -{ 1 }→ 1 + n + app(x, z'') :|: n >= 0, z' = 1 + n + x, x >= 0, z'' >= 0
concat(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
concat(z', z'') -{ 2 + v }→ 1 + u + s'' :|: s'' >= 0, s'' <= 1 * v + 1 * z'', v >= 0, z' = 1 + u + v, z'' >= 0, u >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(z' - 1, z'' - 1) :|: z' - 1 >= 0, z'' - 1 >= 0
less_leaves(z', z'') -{ 4 + v'' }→ less_leaves(z' - 1, 1 + u'' + s1) :|: s1 >= 0, s1 <= 1 * v'' + 1 * z, z' - 1 >= 0, z >= 0, z'' = 1 + (1 + u'' + v'') + z, u'' >= 0, v'' >= 0
less_leaves(z', z'') -{ 4 + v' }→ less_leaves(1 + u' + s2, z'' - 1) :|: s2 >= 0, s2 <= 1 * v' + 1 * v, v >= 0, z'' - 1 >= 0, u' >= 0, v' >= 0, z' = 1 + (1 + u' + v') + v
less_leaves(z', z'') -{ 5 + v' + v2 }→ less_leaves(1 + u' + s3, 1 + u1 + s4) :|: s3 >= 0, s3 <= 1 * v' + 1 * v, s4 >= 0, s4 <= 1 * v2 + 1 * z, v >= 0, z >= 0, u' >= 0, v' >= 0, u1 >= 0, z' = 1 + (1 + u' + v') + v, z'' = 1 + (1 + u1 + v2) + z, v2 >= 0
less_leaves(z', z'') -{ 1 }→ 1 :|: z >= 0, z'' = 1 + w + z, w >= 0, z' = 0
less_leaves(z', z'') -{ 1 }→ 0 :|: z'' = 0, z' >= 0
minus(z', z'') -{ 1 + z'' }→ s :|: s >= 0, s <= 1 * (z' - 1), z' - 1 >= 0, z'' - 1 >= 0
minus(z', z'') -{ 1 }→ z' :|: z'' = 0, z' >= 0
minus(z', z'') -{ 0 }→ 0 :|: z' >= 0, z'' >= 0
quot(z', z'') -{ 1 }→ 0 :|: z'' - 1 >= 0, z' = 0
quot(z', z'') -{ 1 + z'' }→ 1 + quot(s', 1 + (1 + (z'' - 2))) :|: s' >= 0, s' <= 1 * (z' - 2), z' - 2 >= 0, z'' - 2 >= 0
quot(z', z'') -{ 1 }→ 1 + quot(0, 1 + (z'' - 1)) :|: z' - 1 >= 0, z'' - 1 >= 0
quot(z', z'') -{ 2 }→ 1 + quot(z' - 1, 1 + 0) :|: z' - 1 >= 0, z'' = 1 + 0
reverse(z') -{ 2 }→ app(app(reverse(x''), 1 + n' + 0), 1 + n + 0) :|: n >= 0, n' >= 0, z' = 1 + n + (1 + n' + x''), x'' >= 0
reverse(z') -{ 2 }→ app(0, 1 + (z' - 1) + 0) :|: z' - 1 >= 0
reverse(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 2 }→ 1 + n + shuffle(app(reverse(x1), 1 + n'' + 0)) :|: n >= 0, x1 >= 0, n'' >= 0, z' = 1 + n + (1 + n'' + x1)
shuffle(z') -{ 2 }→ 1 + (z' - 1) + shuffle(0) :|: z' - 1 >= 0
minus: runtime: O(n1) [1 + z''], size: O(n1) [z'] concat: runtime: O(n1) [1 + z'], size: O(n1) [z' + z''] app: runtime: O(n1) [1 + z'], size: O(n1) [z' + z''] |
app(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
app(z', z'') -{ 2 + x }→ 1 + n + s5 :|: s5 >= 0, s5 <= 1 * x + 1 * z'', n >= 0, z' = 1 + n + x, x >= 0, z'' >= 0
concat(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
concat(z', z'') -{ 2 + v }→ 1 + u + s'' :|: s'' >= 0, s'' <= 1 * v + 1 * z'', v >= 0, z' = 1 + u + v, z'' >= 0, u >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(z' - 1, z'' - 1) :|: z' - 1 >= 0, z'' - 1 >= 0
less_leaves(z', z'') -{ 4 + v'' }→ less_leaves(z' - 1, 1 + u'' + s1) :|: s1 >= 0, s1 <= 1 * v'' + 1 * z, z' - 1 >= 0, z >= 0, z'' = 1 + (1 + u'' + v'') + z, u'' >= 0, v'' >= 0
less_leaves(z', z'') -{ 4 + v' }→ less_leaves(1 + u' + s2, z'' - 1) :|: s2 >= 0, s2 <= 1 * v' + 1 * v, v >= 0, z'' - 1 >= 0, u' >= 0, v' >= 0, z' = 1 + (1 + u' + v') + v
less_leaves(z', z'') -{ 5 + v' + v2 }→ less_leaves(1 + u' + s3, 1 + u1 + s4) :|: s3 >= 0, s3 <= 1 * v' + 1 * v, s4 >= 0, s4 <= 1 * v2 + 1 * z, v >= 0, z >= 0, u' >= 0, v' >= 0, u1 >= 0, z' = 1 + (1 + u' + v') + v, z'' = 1 + (1 + u1 + v2) + z, v2 >= 0
less_leaves(z', z'') -{ 1 }→ 1 :|: z >= 0, z'' = 1 + w + z, w >= 0, z' = 0
less_leaves(z', z'') -{ 1 }→ 0 :|: z'' = 0, z' >= 0
minus(z', z'') -{ 1 + z'' }→ s :|: s >= 0, s <= 1 * (z' - 1), z' - 1 >= 0, z'' - 1 >= 0
minus(z', z'') -{ 1 }→ z' :|: z'' = 0, z' >= 0
minus(z', z'') -{ 0 }→ 0 :|: z' >= 0, z'' >= 0
quot(z', z'') -{ 1 }→ 0 :|: z'' - 1 >= 0, z' = 0
quot(z', z'') -{ 1 + z'' }→ 1 + quot(s', 1 + (1 + (z'' - 2))) :|: s' >= 0, s' <= 1 * (z' - 2), z' - 2 >= 0, z'' - 2 >= 0
quot(z', z'') -{ 1 }→ 1 + quot(0, 1 + (z'' - 1)) :|: z' - 1 >= 0, z'' - 1 >= 0
quot(z', z'') -{ 2 }→ 1 + quot(z' - 1, 1 + 0) :|: z' - 1 >= 0, z'' = 1 + 0
reverse(z') -{ 3 }→ s6 :|: s6 >= 0, s6 <= 1 * 0 + 1 * (1 + (z' - 1) + 0), z' - 1 >= 0
reverse(z') -{ 2 }→ app(app(reverse(x''), 1 + n' + 0), 1 + n + 0) :|: n >= 0, n' >= 0, z' = 1 + n + (1 + n' + x''), x'' >= 0
reverse(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 2 }→ 1 + n + shuffle(app(reverse(x1), 1 + n'' + 0)) :|: n >= 0, x1 >= 0, n'' >= 0, z' = 1 + n + (1 + n'' + x1)
shuffle(z') -{ 2 }→ 1 + (z' - 1) + shuffle(0) :|: z' - 1 >= 0
minus: runtime: O(n1) [1 + z''], size: O(n1) [z'] concat: runtime: O(n1) [1 + z'], size: O(n1) [z' + z''] app: runtime: O(n1) [1 + z'], size: O(n1) [z' + z''] |
app(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
app(z', z'') -{ 2 + x }→ 1 + n + s5 :|: s5 >= 0, s5 <= 1 * x + 1 * z'', n >= 0, z' = 1 + n + x, x >= 0, z'' >= 0
concat(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
concat(z', z'') -{ 2 + v }→ 1 + u + s'' :|: s'' >= 0, s'' <= 1 * v + 1 * z'', v >= 0, z' = 1 + u + v, z'' >= 0, u >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(z' - 1, z'' - 1) :|: z' - 1 >= 0, z'' - 1 >= 0
less_leaves(z', z'') -{ 4 + v'' }→ less_leaves(z' - 1, 1 + u'' + s1) :|: s1 >= 0, s1 <= 1 * v'' + 1 * z, z' - 1 >= 0, z >= 0, z'' = 1 + (1 + u'' + v'') + z, u'' >= 0, v'' >= 0
less_leaves(z', z'') -{ 4 + v' }→ less_leaves(1 + u' + s2, z'' - 1) :|: s2 >= 0, s2 <= 1 * v' + 1 * v, v >= 0, z'' - 1 >= 0, u' >= 0, v' >= 0, z' = 1 + (1 + u' + v') + v
less_leaves(z', z'') -{ 5 + v' + v2 }→ less_leaves(1 + u' + s3, 1 + u1 + s4) :|: s3 >= 0, s3 <= 1 * v' + 1 * v, s4 >= 0, s4 <= 1 * v2 + 1 * z, v >= 0, z >= 0, u' >= 0, v' >= 0, u1 >= 0, z' = 1 + (1 + u' + v') + v, z'' = 1 + (1 + u1 + v2) + z, v2 >= 0
less_leaves(z', z'') -{ 1 }→ 1 :|: z >= 0, z'' = 1 + w + z, w >= 0, z' = 0
less_leaves(z', z'') -{ 1 }→ 0 :|: z'' = 0, z' >= 0
minus(z', z'') -{ 1 + z'' }→ s :|: s >= 0, s <= 1 * (z' - 1), z' - 1 >= 0, z'' - 1 >= 0
minus(z', z'') -{ 1 }→ z' :|: z'' = 0, z' >= 0
minus(z', z'') -{ 0 }→ 0 :|: z' >= 0, z'' >= 0
quot(z', z'') -{ 1 }→ 0 :|: z'' - 1 >= 0, z' = 0
quot(z', z'') -{ 1 + z'' }→ 1 + quot(s', 1 + (1 + (z'' - 2))) :|: s' >= 0, s' <= 1 * (z' - 2), z' - 2 >= 0, z'' - 2 >= 0
quot(z', z'') -{ 1 }→ 1 + quot(0, 1 + (z'' - 1)) :|: z' - 1 >= 0, z'' - 1 >= 0
quot(z', z'') -{ 2 }→ 1 + quot(z' - 1, 1 + 0) :|: z' - 1 >= 0, z'' = 1 + 0
reverse(z') -{ 3 }→ s6 :|: s6 >= 0, s6 <= 1 * 0 + 1 * (1 + (z' - 1) + 0), z' - 1 >= 0
reverse(z') -{ 2 }→ app(app(reverse(x''), 1 + n' + 0), 1 + n + 0) :|: n >= 0, n' >= 0, z' = 1 + n + (1 + n' + x''), x'' >= 0
reverse(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 2 }→ 1 + n + shuffle(app(reverse(x1), 1 + n'' + 0)) :|: n >= 0, x1 >= 0, n'' >= 0, z' = 1 + n + (1 + n'' + x1)
shuffle(z') -{ 2 }→ 1 + (z' - 1) + shuffle(0) :|: z' - 1 >= 0
minus: runtime: O(n1) [1 + z''], size: O(n1) [z'] concat: runtime: O(n1) [1 + z'], size: O(n1) [z' + z''] app: runtime: O(n1) [1 + z'], size: O(n1) [z' + z''] quot: runtime: ?, size: O(n1) [z'] |
app(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
app(z', z'') -{ 2 + x }→ 1 + n + s5 :|: s5 >= 0, s5 <= 1 * x + 1 * z'', n >= 0, z' = 1 + n + x, x >= 0, z'' >= 0
concat(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
concat(z', z'') -{ 2 + v }→ 1 + u + s'' :|: s'' >= 0, s'' <= 1 * v + 1 * z'', v >= 0, z' = 1 + u + v, z'' >= 0, u >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(z' - 1, z'' - 1) :|: z' - 1 >= 0, z'' - 1 >= 0
less_leaves(z', z'') -{ 4 + v'' }→ less_leaves(z' - 1, 1 + u'' + s1) :|: s1 >= 0, s1 <= 1 * v'' + 1 * z, z' - 1 >= 0, z >= 0, z'' = 1 + (1 + u'' + v'') + z, u'' >= 0, v'' >= 0
less_leaves(z', z'') -{ 4 + v' }→ less_leaves(1 + u' + s2, z'' - 1) :|: s2 >= 0, s2 <= 1 * v' + 1 * v, v >= 0, z'' - 1 >= 0, u' >= 0, v' >= 0, z' = 1 + (1 + u' + v') + v
less_leaves(z', z'') -{ 5 + v' + v2 }→ less_leaves(1 + u' + s3, 1 + u1 + s4) :|: s3 >= 0, s3 <= 1 * v' + 1 * v, s4 >= 0, s4 <= 1 * v2 + 1 * z, v >= 0, z >= 0, u' >= 0, v' >= 0, u1 >= 0, z' = 1 + (1 + u' + v') + v, z'' = 1 + (1 + u1 + v2) + z, v2 >= 0
less_leaves(z', z'') -{ 1 }→ 1 :|: z >= 0, z'' = 1 + w + z, w >= 0, z' = 0
less_leaves(z', z'') -{ 1 }→ 0 :|: z'' = 0, z' >= 0
minus(z', z'') -{ 1 + z'' }→ s :|: s >= 0, s <= 1 * (z' - 1), z' - 1 >= 0, z'' - 1 >= 0
minus(z', z'') -{ 1 }→ z' :|: z'' = 0, z' >= 0
minus(z', z'') -{ 0 }→ 0 :|: z' >= 0, z'' >= 0
quot(z', z'') -{ 1 }→ 0 :|: z'' - 1 >= 0, z' = 0
quot(z', z'') -{ 1 + z'' }→ 1 + quot(s', 1 + (1 + (z'' - 2))) :|: s' >= 0, s' <= 1 * (z' - 2), z' - 2 >= 0, z'' - 2 >= 0
quot(z', z'') -{ 1 }→ 1 + quot(0, 1 + (z'' - 1)) :|: z' - 1 >= 0, z'' - 1 >= 0
quot(z', z'') -{ 2 }→ 1 + quot(z' - 1, 1 + 0) :|: z' - 1 >= 0, z'' = 1 + 0
reverse(z') -{ 3 }→ s6 :|: s6 >= 0, s6 <= 1 * 0 + 1 * (1 + (z' - 1) + 0), z' - 1 >= 0
reverse(z') -{ 2 }→ app(app(reverse(x''), 1 + n' + 0), 1 + n + 0) :|: n >= 0, n' >= 0, z' = 1 + n + (1 + n' + x''), x'' >= 0
reverse(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 2 }→ 1 + n + shuffle(app(reverse(x1), 1 + n'' + 0)) :|: n >= 0, x1 >= 0, n'' >= 0, z' = 1 + n + (1 + n'' + x1)
shuffle(z') -{ 2 }→ 1 + (z' - 1) + shuffle(0) :|: z' - 1 >= 0
minus: runtime: O(n1) [1 + z''], size: O(n1) [z'] concat: runtime: O(n1) [1 + z'], size: O(n1) [z' + z''] app: runtime: O(n1) [1 + z'], size: O(n1) [z' + z''] quot: runtime: O(n2) [1 + 2·z' + z'·z''], size: O(n1) [z'] |
app(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
app(z', z'') -{ 2 + x }→ 1 + n + s5 :|: s5 >= 0, s5 <= 1 * x + 1 * z'', n >= 0, z' = 1 + n + x, x >= 0, z'' >= 0
concat(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
concat(z', z'') -{ 2 + v }→ 1 + u + s'' :|: s'' >= 0, s'' <= 1 * v + 1 * z'', v >= 0, z' = 1 + u + v, z'' >= 0, u >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(z' - 1, z'' - 1) :|: z' - 1 >= 0, z'' - 1 >= 0
less_leaves(z', z'') -{ 4 + v'' }→ less_leaves(z' - 1, 1 + u'' + s1) :|: s1 >= 0, s1 <= 1 * v'' + 1 * z, z' - 1 >= 0, z >= 0, z'' = 1 + (1 + u'' + v'') + z, u'' >= 0, v'' >= 0
less_leaves(z', z'') -{ 4 + v' }→ less_leaves(1 + u' + s2, z'' - 1) :|: s2 >= 0, s2 <= 1 * v' + 1 * v, v >= 0, z'' - 1 >= 0, u' >= 0, v' >= 0, z' = 1 + (1 + u' + v') + v
less_leaves(z', z'') -{ 5 + v' + v2 }→ less_leaves(1 + u' + s3, 1 + u1 + s4) :|: s3 >= 0, s3 <= 1 * v' + 1 * v, s4 >= 0, s4 <= 1 * v2 + 1 * z, v >= 0, z >= 0, u' >= 0, v' >= 0, u1 >= 0, z' = 1 + (1 + u' + v') + v, z'' = 1 + (1 + u1 + v2) + z, v2 >= 0
less_leaves(z', z'') -{ 1 }→ 1 :|: z >= 0, z'' = 1 + w + z, w >= 0, z' = 0
less_leaves(z', z'') -{ 1 }→ 0 :|: z'' = 0, z' >= 0
minus(z', z'') -{ 1 + z'' }→ s :|: s >= 0, s <= 1 * (z' - 1), z' - 1 >= 0, z'' - 1 >= 0
minus(z', z'') -{ 1 }→ z' :|: z'' = 0, z' >= 0
minus(z', z'') -{ 0 }→ 0 :|: z' >= 0, z'' >= 0
quot(z', z'') -{ 1 }→ 0 :|: z'' - 1 >= 0, z' = 0
quot(z', z'') -{ 3·z' }→ 1 + s7 :|: s7 >= 0, s7 <= 1 * (z' - 1), z' - 1 >= 0, z'' = 1 + 0
quot(z', z'') -{ 2 + 2·s' + s'·z'' + z'' }→ 1 + s8 :|: s8 >= 0, s8 <= 1 * s', s' >= 0, s' <= 1 * (z' - 2), z' - 2 >= 0, z'' - 2 >= 0
quot(z', z'') -{ 2 }→ 1 + s9 :|: s9 >= 0, s9 <= 1 * 0, z' - 1 >= 0, z'' - 1 >= 0
reverse(z') -{ 3 }→ s6 :|: s6 >= 0, s6 <= 1 * 0 + 1 * (1 + (z' - 1) + 0), z' - 1 >= 0
reverse(z') -{ 2 }→ app(app(reverse(x''), 1 + n' + 0), 1 + n + 0) :|: n >= 0, n' >= 0, z' = 1 + n + (1 + n' + x''), x'' >= 0
reverse(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 2 }→ 1 + n + shuffle(app(reverse(x1), 1 + n'' + 0)) :|: n >= 0, x1 >= 0, n'' >= 0, z' = 1 + n + (1 + n'' + x1)
shuffle(z') -{ 2 }→ 1 + (z' - 1) + shuffle(0) :|: z' - 1 >= 0
minus: runtime: O(n1) [1 + z''], size: O(n1) [z'] concat: runtime: O(n1) [1 + z'], size: O(n1) [z' + z''] app: runtime: O(n1) [1 + z'], size: O(n1) [z' + z''] quot: runtime: O(n2) [1 + 2·z' + z'·z''], size: O(n1) [z'] |
app(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
app(z', z'') -{ 2 + x }→ 1 + n + s5 :|: s5 >= 0, s5 <= 1 * x + 1 * z'', n >= 0, z' = 1 + n + x, x >= 0, z'' >= 0
concat(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
concat(z', z'') -{ 2 + v }→ 1 + u + s'' :|: s'' >= 0, s'' <= 1 * v + 1 * z'', v >= 0, z' = 1 + u + v, z'' >= 0, u >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(z' - 1, z'' - 1) :|: z' - 1 >= 0, z'' - 1 >= 0
less_leaves(z', z'') -{ 4 + v'' }→ less_leaves(z' - 1, 1 + u'' + s1) :|: s1 >= 0, s1 <= 1 * v'' + 1 * z, z' - 1 >= 0, z >= 0, z'' = 1 + (1 + u'' + v'') + z, u'' >= 0, v'' >= 0
less_leaves(z', z'') -{ 4 + v' }→ less_leaves(1 + u' + s2, z'' - 1) :|: s2 >= 0, s2 <= 1 * v' + 1 * v, v >= 0, z'' - 1 >= 0, u' >= 0, v' >= 0, z' = 1 + (1 + u' + v') + v
less_leaves(z', z'') -{ 5 + v' + v2 }→ less_leaves(1 + u' + s3, 1 + u1 + s4) :|: s3 >= 0, s3 <= 1 * v' + 1 * v, s4 >= 0, s4 <= 1 * v2 + 1 * z, v >= 0, z >= 0, u' >= 0, v' >= 0, u1 >= 0, z' = 1 + (1 + u' + v') + v, z'' = 1 + (1 + u1 + v2) + z, v2 >= 0
less_leaves(z', z'') -{ 1 }→ 1 :|: z >= 0, z'' = 1 + w + z, w >= 0, z' = 0
less_leaves(z', z'') -{ 1 }→ 0 :|: z'' = 0, z' >= 0
minus(z', z'') -{ 1 + z'' }→ s :|: s >= 0, s <= 1 * (z' - 1), z' - 1 >= 0, z'' - 1 >= 0
minus(z', z'') -{ 1 }→ z' :|: z'' = 0, z' >= 0
minus(z', z'') -{ 0 }→ 0 :|: z' >= 0, z'' >= 0
quot(z', z'') -{ 1 }→ 0 :|: z'' - 1 >= 0, z' = 0
quot(z', z'') -{ 3·z' }→ 1 + s7 :|: s7 >= 0, s7 <= 1 * (z' - 1), z' - 1 >= 0, z'' = 1 + 0
quot(z', z'') -{ 2 + 2·s' + s'·z'' + z'' }→ 1 + s8 :|: s8 >= 0, s8 <= 1 * s', s' >= 0, s' <= 1 * (z' - 2), z' - 2 >= 0, z'' - 2 >= 0
quot(z', z'') -{ 2 }→ 1 + s9 :|: s9 >= 0, s9 <= 1 * 0, z' - 1 >= 0, z'' - 1 >= 0
reverse(z') -{ 3 }→ s6 :|: s6 >= 0, s6 <= 1 * 0 + 1 * (1 + (z' - 1) + 0), z' - 1 >= 0
reverse(z') -{ 2 }→ app(app(reverse(x''), 1 + n' + 0), 1 + n + 0) :|: n >= 0, n' >= 0, z' = 1 + n + (1 + n' + x''), x'' >= 0
reverse(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 2 }→ 1 + n + shuffle(app(reverse(x1), 1 + n'' + 0)) :|: n >= 0, x1 >= 0, n'' >= 0, z' = 1 + n + (1 + n'' + x1)
shuffle(z') -{ 2 }→ 1 + (z' - 1) + shuffle(0) :|: z' - 1 >= 0
minus: runtime: O(n1) [1 + z''], size: O(n1) [z'] concat: runtime: O(n1) [1 + z'], size: O(n1) [z' + z''] app: runtime: O(n1) [1 + z'], size: O(n1) [z' + z''] quot: runtime: O(n2) [1 + 2·z' + z'·z''], size: O(n1) [z'] less_leaves: runtime: ?, size: O(1) [1] |
app(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
app(z', z'') -{ 2 + x }→ 1 + n + s5 :|: s5 >= 0, s5 <= 1 * x + 1 * z'', n >= 0, z' = 1 + n + x, x >= 0, z'' >= 0
concat(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
concat(z', z'') -{ 2 + v }→ 1 + u + s'' :|: s'' >= 0, s'' <= 1 * v + 1 * z'', v >= 0, z' = 1 + u + v, z'' >= 0, u >= 0
less_leaves(z', z'') -{ 3 }→ less_leaves(z' - 1, z'' - 1) :|: z' - 1 >= 0, z'' - 1 >= 0
less_leaves(z', z'') -{ 4 + v'' }→ less_leaves(z' - 1, 1 + u'' + s1) :|: s1 >= 0, s1 <= 1 * v'' + 1 * z, z' - 1 >= 0, z >= 0, z'' = 1 + (1 + u'' + v'') + z, u'' >= 0, v'' >= 0
less_leaves(z', z'') -{ 4 + v' }→ less_leaves(1 + u' + s2, z'' - 1) :|: s2 >= 0, s2 <= 1 * v' + 1 * v, v >= 0, z'' - 1 >= 0, u' >= 0, v' >= 0, z' = 1 + (1 + u' + v') + v
less_leaves(z', z'') -{ 5 + v' + v2 }→ less_leaves(1 + u' + s3, 1 + u1 + s4) :|: s3 >= 0, s3 <= 1 * v' + 1 * v, s4 >= 0, s4 <= 1 * v2 + 1 * z, v >= 0, z >= 0, u' >= 0, v' >= 0, u1 >= 0, z' = 1 + (1 + u' + v') + v, z'' = 1 + (1 + u1 + v2) + z, v2 >= 0
less_leaves(z', z'') -{ 1 }→ 1 :|: z >= 0, z'' = 1 + w + z, w >= 0, z' = 0
less_leaves(z', z'') -{ 1 }→ 0 :|: z'' = 0, z' >= 0
minus(z', z'') -{ 1 + z'' }→ s :|: s >= 0, s <= 1 * (z' - 1), z' - 1 >= 0, z'' - 1 >= 0
minus(z', z'') -{ 1 }→ z' :|: z'' = 0, z' >= 0
minus(z', z'') -{ 0 }→ 0 :|: z' >= 0, z'' >= 0
quot(z', z'') -{ 1 }→ 0 :|: z'' - 1 >= 0, z' = 0
quot(z', z'') -{ 3·z' }→ 1 + s7 :|: s7 >= 0, s7 <= 1 * (z' - 1), z' - 1 >= 0, z'' = 1 + 0
quot(z', z'') -{ 2 + 2·s' + s'·z'' + z'' }→ 1 + s8 :|: s8 >= 0, s8 <= 1 * s', s' >= 0, s' <= 1 * (z' - 2), z' - 2 >= 0, z'' - 2 >= 0
quot(z', z'') -{ 2 }→ 1 + s9 :|: s9 >= 0, s9 <= 1 * 0, z' - 1 >= 0, z'' - 1 >= 0
reverse(z') -{ 3 }→ s6 :|: s6 >= 0, s6 <= 1 * 0 + 1 * (1 + (z' - 1) + 0), z' - 1 >= 0
reverse(z') -{ 2 }→ app(app(reverse(x''), 1 + n' + 0), 1 + n + 0) :|: n >= 0, n' >= 0, z' = 1 + n + (1 + n' + x''), x'' >= 0
reverse(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 2 }→ 1 + n + shuffle(app(reverse(x1), 1 + n'' + 0)) :|: n >= 0, x1 >= 0, n'' >= 0, z' = 1 + n + (1 + n'' + x1)
shuffle(z') -{ 2 }→ 1 + (z' - 1) + shuffle(0) :|: z' - 1 >= 0
minus: runtime: O(n1) [1 + z''], size: O(n1) [z'] concat: runtime: O(n1) [1 + z'], size: O(n1) [z' + z''] app: runtime: O(n1) [1 + z'], size: O(n1) [z' + z''] quot: runtime: O(n2) [1 + 2·z' + z'·z''], size: O(n1) [z'] less_leaves: runtime: O(n2) [1 + 3·z' + z'·z'' + z'2], size: O(1) [1] |
app(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
app(z', z'') -{ 2 + x }→ 1 + n + s5 :|: s5 >= 0, s5 <= 1 * x + 1 * z'', n >= 0, z' = 1 + n + x, x >= 0, z'' >= 0
concat(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
concat(z', z'') -{ 2 + v }→ 1 + u + s'' :|: s'' >= 0, s'' <= 1 * v + 1 * z'', v >= 0, z' = 1 + u + v, z'' >= 0, u >= 0
less_leaves(z', z'') -{ 3 + z'·z'' + z'2 + -1·z'' }→ s10 :|: s10 >= 0, s10 <= 1, z' - 1 >= 0, z'' - 1 >= 0
less_leaves(z', z'') -{ 2 + -1·s1 + s1·z' + -1·u'' + u''·z' + v'' + 2·z' + z'2 }→ s11 :|: s11 >= 0, s11 <= 1, s1 >= 0, s1 <= 1 * v'' + 1 * z, z' - 1 >= 0, z >= 0, z'' = 1 + (1 + u'' + v'') + z, u'' >= 0, v'' >= 0
less_leaves(z', z'') -{ 8 + 4·s2 + 2·s2·u' + s2·z'' + s22 + 4·u' + u'·z'' + u'2 + v' + z'' }→ s12 :|: s12 >= 0, s12 <= 1, s2 >= 0, s2 <= 1 * v' + 1 * v, v >= 0, z'' - 1 >= 0, u' >= 0, v' >= 0, z' = 1 + (1 + u' + v') + v
less_leaves(z', z'') -{ 11 + 6·s3 + s3·s4 + 2·s3·u' + s3·u1 + s32 + s4 + s4·u' + 6·u' + u'·u1 + u'2 + u1 + v' + v2 }→ s13 :|: s13 >= 0, s13 <= 1, s3 >= 0, s3 <= 1 * v' + 1 * v, s4 >= 0, s4 <= 1 * v2 + 1 * z, v >= 0, z >= 0, u' >= 0, v' >= 0, u1 >= 0, z' = 1 + (1 + u' + v') + v, z'' = 1 + (1 + u1 + v2) + z, v2 >= 0
less_leaves(z', z'') -{ 1 }→ 1 :|: z >= 0, z'' = 1 + w + z, w >= 0, z' = 0
less_leaves(z', z'') -{ 1 }→ 0 :|: z'' = 0, z' >= 0
minus(z', z'') -{ 1 + z'' }→ s :|: s >= 0, s <= 1 * (z' - 1), z' - 1 >= 0, z'' - 1 >= 0
minus(z', z'') -{ 1 }→ z' :|: z'' = 0, z' >= 0
minus(z', z'') -{ 0 }→ 0 :|: z' >= 0, z'' >= 0
quot(z', z'') -{ 1 }→ 0 :|: z'' - 1 >= 0, z' = 0
quot(z', z'') -{ 3·z' }→ 1 + s7 :|: s7 >= 0, s7 <= 1 * (z' - 1), z' - 1 >= 0, z'' = 1 + 0
quot(z', z'') -{ 2 + 2·s' + s'·z'' + z'' }→ 1 + s8 :|: s8 >= 0, s8 <= 1 * s', s' >= 0, s' <= 1 * (z' - 2), z' - 2 >= 0, z'' - 2 >= 0
quot(z', z'') -{ 2 }→ 1 + s9 :|: s9 >= 0, s9 <= 1 * 0, z' - 1 >= 0, z'' - 1 >= 0
reverse(z') -{ 3 }→ s6 :|: s6 >= 0, s6 <= 1 * 0 + 1 * (1 + (z' - 1) + 0), z' - 1 >= 0
reverse(z') -{ 2 }→ app(app(reverse(x''), 1 + n' + 0), 1 + n + 0) :|: n >= 0, n' >= 0, z' = 1 + n + (1 + n' + x''), x'' >= 0
reverse(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 2 }→ 1 + n + shuffle(app(reverse(x1), 1 + n'' + 0)) :|: n >= 0, x1 >= 0, n'' >= 0, z' = 1 + n + (1 + n'' + x1)
shuffle(z') -{ 2 }→ 1 + (z' - 1) + shuffle(0) :|: z' - 1 >= 0
minus: runtime: O(n1) [1 + z''], size: O(n1) [z'] concat: runtime: O(n1) [1 + z'], size: O(n1) [z' + z''] app: runtime: O(n1) [1 + z'], size: O(n1) [z' + z''] quot: runtime: O(n2) [1 + 2·z' + z'·z''], size: O(n1) [z'] less_leaves: runtime: O(n2) [1 + 3·z' + z'·z'' + z'2], size: O(1) [1] |
app(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
app(z', z'') -{ 2 + x }→ 1 + n + s5 :|: s5 >= 0, s5 <= 1 * x + 1 * z'', n >= 0, z' = 1 + n + x, x >= 0, z'' >= 0
concat(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
concat(z', z'') -{ 2 + v }→ 1 + u + s'' :|: s'' >= 0, s'' <= 1 * v + 1 * z'', v >= 0, z' = 1 + u + v, z'' >= 0, u >= 0
less_leaves(z', z'') -{ 3 + z'·z'' + z'2 + -1·z'' }→ s10 :|: s10 >= 0, s10 <= 1, z' - 1 >= 0, z'' - 1 >= 0
less_leaves(z', z'') -{ 2 + -1·s1 + s1·z' + -1·u'' + u''·z' + v'' + 2·z' + z'2 }→ s11 :|: s11 >= 0, s11 <= 1, s1 >= 0, s1 <= 1 * v'' + 1 * z, z' - 1 >= 0, z >= 0, z'' = 1 + (1 + u'' + v'') + z, u'' >= 0, v'' >= 0
less_leaves(z', z'') -{ 8 + 4·s2 + 2·s2·u' + s2·z'' + s22 + 4·u' + u'·z'' + u'2 + v' + z'' }→ s12 :|: s12 >= 0, s12 <= 1, s2 >= 0, s2 <= 1 * v' + 1 * v, v >= 0, z'' - 1 >= 0, u' >= 0, v' >= 0, z' = 1 + (1 + u' + v') + v
less_leaves(z', z'') -{ 11 + 6·s3 + s3·s4 + 2·s3·u' + s3·u1 + s32 + s4 + s4·u' + 6·u' + u'·u1 + u'2 + u1 + v' + v2 }→ s13 :|: s13 >= 0, s13 <= 1, s3 >= 0, s3 <= 1 * v' + 1 * v, s4 >= 0, s4 <= 1 * v2 + 1 * z, v >= 0, z >= 0, u' >= 0, v' >= 0, u1 >= 0, z' = 1 + (1 + u' + v') + v, z'' = 1 + (1 + u1 + v2) + z, v2 >= 0
less_leaves(z', z'') -{ 1 }→ 1 :|: z >= 0, z'' = 1 + w + z, w >= 0, z' = 0
less_leaves(z', z'') -{ 1 }→ 0 :|: z'' = 0, z' >= 0
minus(z', z'') -{ 1 + z'' }→ s :|: s >= 0, s <= 1 * (z' - 1), z' - 1 >= 0, z'' - 1 >= 0
minus(z', z'') -{ 1 }→ z' :|: z'' = 0, z' >= 0
minus(z', z'') -{ 0 }→ 0 :|: z' >= 0, z'' >= 0
quot(z', z'') -{ 1 }→ 0 :|: z'' - 1 >= 0, z' = 0
quot(z', z'') -{ 3·z' }→ 1 + s7 :|: s7 >= 0, s7 <= 1 * (z' - 1), z' - 1 >= 0, z'' = 1 + 0
quot(z', z'') -{ 2 + 2·s' + s'·z'' + z'' }→ 1 + s8 :|: s8 >= 0, s8 <= 1 * s', s' >= 0, s' <= 1 * (z' - 2), z' - 2 >= 0, z'' - 2 >= 0
quot(z', z'') -{ 2 }→ 1 + s9 :|: s9 >= 0, s9 <= 1 * 0, z' - 1 >= 0, z'' - 1 >= 0
reverse(z') -{ 3 }→ s6 :|: s6 >= 0, s6 <= 1 * 0 + 1 * (1 + (z' - 1) + 0), z' - 1 >= 0
reverse(z') -{ 2 }→ app(app(reverse(x''), 1 + n' + 0), 1 + n + 0) :|: n >= 0, n' >= 0, z' = 1 + n + (1 + n' + x''), x'' >= 0
reverse(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 2 }→ 1 + n + shuffle(app(reverse(x1), 1 + n'' + 0)) :|: n >= 0, x1 >= 0, n'' >= 0, z' = 1 + n + (1 + n'' + x1)
shuffle(z') -{ 2 }→ 1 + (z' - 1) + shuffle(0) :|: z' - 1 >= 0
minus: runtime: O(n1) [1 + z''], size: O(n1) [z'] concat: runtime: O(n1) [1 + z'], size: O(n1) [z' + z''] app: runtime: O(n1) [1 + z'], size: O(n1) [z' + z''] quot: runtime: O(n2) [1 + 2·z' + z'·z''], size: O(n1) [z'] less_leaves: runtime: O(n2) [1 + 3·z' + z'·z'' + z'2], size: O(1) [1] reverse: runtime: ?, size: O(n1) [z'] |
app(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
app(z', z'') -{ 2 + x }→ 1 + n + s5 :|: s5 >= 0, s5 <= 1 * x + 1 * z'', n >= 0, z' = 1 + n + x, x >= 0, z'' >= 0
concat(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
concat(z', z'') -{ 2 + v }→ 1 + u + s'' :|: s'' >= 0, s'' <= 1 * v + 1 * z'', v >= 0, z' = 1 + u + v, z'' >= 0, u >= 0
less_leaves(z', z'') -{ 3 + z'·z'' + z'2 + -1·z'' }→ s10 :|: s10 >= 0, s10 <= 1, z' - 1 >= 0, z'' - 1 >= 0
less_leaves(z', z'') -{ 2 + -1·s1 + s1·z' + -1·u'' + u''·z' + v'' + 2·z' + z'2 }→ s11 :|: s11 >= 0, s11 <= 1, s1 >= 0, s1 <= 1 * v'' + 1 * z, z' - 1 >= 0, z >= 0, z'' = 1 + (1 + u'' + v'') + z, u'' >= 0, v'' >= 0
less_leaves(z', z'') -{ 8 + 4·s2 + 2·s2·u' + s2·z'' + s22 + 4·u' + u'·z'' + u'2 + v' + z'' }→ s12 :|: s12 >= 0, s12 <= 1, s2 >= 0, s2 <= 1 * v' + 1 * v, v >= 0, z'' - 1 >= 0, u' >= 0, v' >= 0, z' = 1 + (1 + u' + v') + v
less_leaves(z', z'') -{ 11 + 6·s3 + s3·s4 + 2·s3·u' + s3·u1 + s32 + s4 + s4·u' + 6·u' + u'·u1 + u'2 + u1 + v' + v2 }→ s13 :|: s13 >= 0, s13 <= 1, s3 >= 0, s3 <= 1 * v' + 1 * v, s4 >= 0, s4 <= 1 * v2 + 1 * z, v >= 0, z >= 0, u' >= 0, v' >= 0, u1 >= 0, z' = 1 + (1 + u' + v') + v, z'' = 1 + (1 + u1 + v2) + z, v2 >= 0
less_leaves(z', z'') -{ 1 }→ 1 :|: z >= 0, z'' = 1 + w + z, w >= 0, z' = 0
less_leaves(z', z'') -{ 1 }→ 0 :|: z'' = 0, z' >= 0
minus(z', z'') -{ 1 + z'' }→ s :|: s >= 0, s <= 1 * (z' - 1), z' - 1 >= 0, z'' - 1 >= 0
minus(z', z'') -{ 1 }→ z' :|: z'' = 0, z' >= 0
minus(z', z'') -{ 0 }→ 0 :|: z' >= 0, z'' >= 0
quot(z', z'') -{ 1 }→ 0 :|: z'' - 1 >= 0, z' = 0
quot(z', z'') -{ 3·z' }→ 1 + s7 :|: s7 >= 0, s7 <= 1 * (z' - 1), z' - 1 >= 0, z'' = 1 + 0
quot(z', z'') -{ 2 + 2·s' + s'·z'' + z'' }→ 1 + s8 :|: s8 >= 0, s8 <= 1 * s', s' >= 0, s' <= 1 * (z' - 2), z' - 2 >= 0, z'' - 2 >= 0
quot(z', z'') -{ 2 }→ 1 + s9 :|: s9 >= 0, s9 <= 1 * 0, z' - 1 >= 0, z'' - 1 >= 0
reverse(z') -{ 3 }→ s6 :|: s6 >= 0, s6 <= 1 * 0 + 1 * (1 + (z' - 1) + 0), z' - 1 >= 0
reverse(z') -{ 2 }→ app(app(reverse(x''), 1 + n' + 0), 1 + n + 0) :|: n >= 0, n' >= 0, z' = 1 + n + (1 + n' + x''), x'' >= 0
reverse(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 2 }→ 1 + n + shuffle(app(reverse(x1), 1 + n'' + 0)) :|: n >= 0, x1 >= 0, n'' >= 0, z' = 1 + n + (1 + n'' + x1)
shuffle(z') -{ 2 }→ 1 + (z' - 1) + shuffle(0) :|: z' - 1 >= 0
minus: runtime: O(n1) [1 + z''], size: O(n1) [z'] concat: runtime: O(n1) [1 + z'], size: O(n1) [z' + z''] app: runtime: O(n1) [1 + z'], size: O(n1) [z' + z''] quot: runtime: O(n2) [1 + 2·z' + z'·z''], size: O(n1) [z'] less_leaves: runtime: O(n2) [1 + 3·z' + z'·z'' + z'2], size: O(1) [1] reverse: runtime: O(n2) [4 + 3·z' + 2·z'2], size: O(n1) [z'] |
app(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
app(z', z'') -{ 2 + x }→ 1 + n + s5 :|: s5 >= 0, s5 <= 1 * x + 1 * z'', n >= 0, z' = 1 + n + x, x >= 0, z'' >= 0
concat(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
concat(z', z'') -{ 2 + v }→ 1 + u + s'' :|: s'' >= 0, s'' <= 1 * v + 1 * z'', v >= 0, z' = 1 + u + v, z'' >= 0, u >= 0
less_leaves(z', z'') -{ 3 + z'·z'' + z'2 + -1·z'' }→ s10 :|: s10 >= 0, s10 <= 1, z' - 1 >= 0, z'' - 1 >= 0
less_leaves(z', z'') -{ 2 + -1·s1 + s1·z' + -1·u'' + u''·z' + v'' + 2·z' + z'2 }→ s11 :|: s11 >= 0, s11 <= 1, s1 >= 0, s1 <= 1 * v'' + 1 * z, z' - 1 >= 0, z >= 0, z'' = 1 + (1 + u'' + v'') + z, u'' >= 0, v'' >= 0
less_leaves(z', z'') -{ 8 + 4·s2 + 2·s2·u' + s2·z'' + s22 + 4·u' + u'·z'' + u'2 + v' + z'' }→ s12 :|: s12 >= 0, s12 <= 1, s2 >= 0, s2 <= 1 * v' + 1 * v, v >= 0, z'' - 1 >= 0, u' >= 0, v' >= 0, z' = 1 + (1 + u' + v') + v
less_leaves(z', z'') -{ 11 + 6·s3 + s3·s4 + 2·s3·u' + s3·u1 + s32 + s4 + s4·u' + 6·u' + u'·u1 + u'2 + u1 + v' + v2 }→ s13 :|: s13 >= 0, s13 <= 1, s3 >= 0, s3 <= 1 * v' + 1 * v, s4 >= 0, s4 <= 1 * v2 + 1 * z, v >= 0, z >= 0, u' >= 0, v' >= 0, u1 >= 0, z' = 1 + (1 + u' + v') + v, z'' = 1 + (1 + u1 + v2) + z, v2 >= 0
less_leaves(z', z'') -{ 1 }→ 1 :|: z >= 0, z'' = 1 + w + z, w >= 0, z' = 0
less_leaves(z', z'') -{ 1 }→ 0 :|: z'' = 0, z' >= 0
minus(z', z'') -{ 1 + z'' }→ s :|: s >= 0, s <= 1 * (z' - 1), z' - 1 >= 0, z'' - 1 >= 0
minus(z', z'') -{ 1 }→ z' :|: z'' = 0, z' >= 0
minus(z', z'') -{ 0 }→ 0 :|: z' >= 0, z'' >= 0
quot(z', z'') -{ 1 }→ 0 :|: z'' - 1 >= 0, z' = 0
quot(z', z'') -{ 3·z' }→ 1 + s7 :|: s7 >= 0, s7 <= 1 * (z' - 1), z' - 1 >= 0, z'' = 1 + 0
quot(z', z'') -{ 2 + 2·s' + s'·z'' + z'' }→ 1 + s8 :|: s8 >= 0, s8 <= 1 * s', s' >= 0, s' <= 1 * (z' - 2), z' - 2 >= 0, z'' - 2 >= 0
quot(z', z'') -{ 2 }→ 1 + s9 :|: s9 >= 0, s9 <= 1 * 0, z' - 1 >= 0, z'' - 1 >= 0
reverse(z') -{ 8 + s14 + s15 + 3·x'' + 2·x''2 }→ s16 :|: s14 >= 0, s14 <= 1 * x'', s15 >= 0, s15 <= 1 * s14 + 1 * (1 + n' + 0), s16 >= 0, s16 <= 1 * s15 + 1 * (1 + n + 0), n >= 0, n' >= 0, z' = 1 + n + (1 + n' + x''), x'' >= 0
reverse(z') -{ 3 }→ s6 :|: s6 >= 0, s6 <= 1 * 0 + 1 * (1 + (z' - 1) + 0), z' - 1 >= 0
reverse(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 7 + s17 + 3·x1 + 2·x12 }→ 1 + n + shuffle(s18) :|: s17 >= 0, s17 <= 1 * x1, s18 >= 0, s18 <= 1 * s17 + 1 * (1 + n'' + 0), n >= 0, x1 >= 0, n'' >= 0, z' = 1 + n + (1 + n'' + x1)
shuffle(z') -{ 2 }→ 1 + (z' - 1) + shuffle(0) :|: z' - 1 >= 0
minus: runtime: O(n1) [1 + z''], size: O(n1) [z'] concat: runtime: O(n1) [1 + z'], size: O(n1) [z' + z''] app: runtime: O(n1) [1 + z'], size: O(n1) [z' + z''] quot: runtime: O(n2) [1 + 2·z' + z'·z''], size: O(n1) [z'] less_leaves: runtime: O(n2) [1 + 3·z' + z'·z'' + z'2], size: O(1) [1] reverse: runtime: O(n2) [4 + 3·z' + 2·z'2], size: O(n1) [z'] |
app(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
app(z', z'') -{ 2 + x }→ 1 + n + s5 :|: s5 >= 0, s5 <= 1 * x + 1 * z'', n >= 0, z' = 1 + n + x, x >= 0, z'' >= 0
concat(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
concat(z', z'') -{ 2 + v }→ 1 + u + s'' :|: s'' >= 0, s'' <= 1 * v + 1 * z'', v >= 0, z' = 1 + u + v, z'' >= 0, u >= 0
less_leaves(z', z'') -{ 3 + z'·z'' + z'2 + -1·z'' }→ s10 :|: s10 >= 0, s10 <= 1, z' - 1 >= 0, z'' - 1 >= 0
less_leaves(z', z'') -{ 2 + -1·s1 + s1·z' + -1·u'' + u''·z' + v'' + 2·z' + z'2 }→ s11 :|: s11 >= 0, s11 <= 1, s1 >= 0, s1 <= 1 * v'' + 1 * z, z' - 1 >= 0, z >= 0, z'' = 1 + (1 + u'' + v'') + z, u'' >= 0, v'' >= 0
less_leaves(z', z'') -{ 8 + 4·s2 + 2·s2·u' + s2·z'' + s22 + 4·u' + u'·z'' + u'2 + v' + z'' }→ s12 :|: s12 >= 0, s12 <= 1, s2 >= 0, s2 <= 1 * v' + 1 * v, v >= 0, z'' - 1 >= 0, u' >= 0, v' >= 0, z' = 1 + (1 + u' + v') + v
less_leaves(z', z'') -{ 11 + 6·s3 + s3·s4 + 2·s3·u' + s3·u1 + s32 + s4 + s4·u' + 6·u' + u'·u1 + u'2 + u1 + v' + v2 }→ s13 :|: s13 >= 0, s13 <= 1, s3 >= 0, s3 <= 1 * v' + 1 * v, s4 >= 0, s4 <= 1 * v2 + 1 * z, v >= 0, z >= 0, u' >= 0, v' >= 0, u1 >= 0, z' = 1 + (1 + u' + v') + v, z'' = 1 + (1 + u1 + v2) + z, v2 >= 0
less_leaves(z', z'') -{ 1 }→ 1 :|: z >= 0, z'' = 1 + w + z, w >= 0, z' = 0
less_leaves(z', z'') -{ 1 }→ 0 :|: z'' = 0, z' >= 0
minus(z', z'') -{ 1 + z'' }→ s :|: s >= 0, s <= 1 * (z' - 1), z' - 1 >= 0, z'' - 1 >= 0
minus(z', z'') -{ 1 }→ z' :|: z'' = 0, z' >= 0
minus(z', z'') -{ 0 }→ 0 :|: z' >= 0, z'' >= 0
quot(z', z'') -{ 1 }→ 0 :|: z'' - 1 >= 0, z' = 0
quot(z', z'') -{ 3·z' }→ 1 + s7 :|: s7 >= 0, s7 <= 1 * (z' - 1), z' - 1 >= 0, z'' = 1 + 0
quot(z', z'') -{ 2 + 2·s' + s'·z'' + z'' }→ 1 + s8 :|: s8 >= 0, s8 <= 1 * s', s' >= 0, s' <= 1 * (z' - 2), z' - 2 >= 0, z'' - 2 >= 0
quot(z', z'') -{ 2 }→ 1 + s9 :|: s9 >= 0, s9 <= 1 * 0, z' - 1 >= 0, z'' - 1 >= 0
reverse(z') -{ 8 + s14 + s15 + 3·x'' + 2·x''2 }→ s16 :|: s14 >= 0, s14 <= 1 * x'', s15 >= 0, s15 <= 1 * s14 + 1 * (1 + n' + 0), s16 >= 0, s16 <= 1 * s15 + 1 * (1 + n + 0), n >= 0, n' >= 0, z' = 1 + n + (1 + n' + x''), x'' >= 0
reverse(z') -{ 3 }→ s6 :|: s6 >= 0, s6 <= 1 * 0 + 1 * (1 + (z' - 1) + 0), z' - 1 >= 0
reverse(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 7 + s17 + 3·x1 + 2·x12 }→ 1 + n + shuffle(s18) :|: s17 >= 0, s17 <= 1 * x1, s18 >= 0, s18 <= 1 * s17 + 1 * (1 + n'' + 0), n >= 0, x1 >= 0, n'' >= 0, z' = 1 + n + (1 + n'' + x1)
shuffle(z') -{ 2 }→ 1 + (z' - 1) + shuffle(0) :|: z' - 1 >= 0
minus: runtime: O(n1) [1 + z''], size: O(n1) [z'] concat: runtime: O(n1) [1 + z'], size: O(n1) [z' + z''] app: runtime: O(n1) [1 + z'], size: O(n1) [z' + z''] quot: runtime: O(n2) [1 + 2·z' + z'·z''], size: O(n1) [z'] less_leaves: runtime: O(n2) [1 + 3·z' + z'·z'' + z'2], size: O(1) [1] reverse: runtime: O(n2) [4 + 3·z' + 2·z'2], size: O(n1) [z'] shuffle: runtime: ?, size: O(n1) [z'] |
app(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
app(z', z'') -{ 2 + x }→ 1 + n + s5 :|: s5 >= 0, s5 <= 1 * x + 1 * z'', n >= 0, z' = 1 + n + x, x >= 0, z'' >= 0
concat(z', z'') -{ 1 }→ z'' :|: z'' >= 0, z' = 0
concat(z', z'') -{ 2 + v }→ 1 + u + s'' :|: s'' >= 0, s'' <= 1 * v + 1 * z'', v >= 0, z' = 1 + u + v, z'' >= 0, u >= 0
less_leaves(z', z'') -{ 3 + z'·z'' + z'2 + -1·z'' }→ s10 :|: s10 >= 0, s10 <= 1, z' - 1 >= 0, z'' - 1 >= 0
less_leaves(z', z'') -{ 2 + -1·s1 + s1·z' + -1·u'' + u''·z' + v'' + 2·z' + z'2 }→ s11 :|: s11 >= 0, s11 <= 1, s1 >= 0, s1 <= 1 * v'' + 1 * z, z' - 1 >= 0, z >= 0, z'' = 1 + (1 + u'' + v'') + z, u'' >= 0, v'' >= 0
less_leaves(z', z'') -{ 8 + 4·s2 + 2·s2·u' + s2·z'' + s22 + 4·u' + u'·z'' + u'2 + v' + z'' }→ s12 :|: s12 >= 0, s12 <= 1, s2 >= 0, s2 <= 1 * v' + 1 * v, v >= 0, z'' - 1 >= 0, u' >= 0, v' >= 0, z' = 1 + (1 + u' + v') + v
less_leaves(z', z'') -{ 11 + 6·s3 + s3·s4 + 2·s3·u' + s3·u1 + s32 + s4 + s4·u' + 6·u' + u'·u1 + u'2 + u1 + v' + v2 }→ s13 :|: s13 >= 0, s13 <= 1, s3 >= 0, s3 <= 1 * v' + 1 * v, s4 >= 0, s4 <= 1 * v2 + 1 * z, v >= 0, z >= 0, u' >= 0, v' >= 0, u1 >= 0, z' = 1 + (1 + u' + v') + v, z'' = 1 + (1 + u1 + v2) + z, v2 >= 0
less_leaves(z', z'') -{ 1 }→ 1 :|: z >= 0, z'' = 1 + w + z, w >= 0, z' = 0
less_leaves(z', z'') -{ 1 }→ 0 :|: z'' = 0, z' >= 0
minus(z', z'') -{ 1 + z'' }→ s :|: s >= 0, s <= 1 * (z' - 1), z' - 1 >= 0, z'' - 1 >= 0
minus(z', z'') -{ 1 }→ z' :|: z'' = 0, z' >= 0
minus(z', z'') -{ 0 }→ 0 :|: z' >= 0, z'' >= 0
quot(z', z'') -{ 1 }→ 0 :|: z'' - 1 >= 0, z' = 0
quot(z', z'') -{ 3·z' }→ 1 + s7 :|: s7 >= 0, s7 <= 1 * (z' - 1), z' - 1 >= 0, z'' = 1 + 0
quot(z', z'') -{ 2 + 2·s' + s'·z'' + z'' }→ 1 + s8 :|: s8 >= 0, s8 <= 1 * s', s' >= 0, s' <= 1 * (z' - 2), z' - 2 >= 0, z'' - 2 >= 0
quot(z', z'') -{ 2 }→ 1 + s9 :|: s9 >= 0, s9 <= 1 * 0, z' - 1 >= 0, z'' - 1 >= 0
reverse(z') -{ 8 + s14 + s15 + 3·x'' + 2·x''2 }→ s16 :|: s14 >= 0, s14 <= 1 * x'', s15 >= 0, s15 <= 1 * s14 + 1 * (1 + n' + 0), s16 >= 0, s16 <= 1 * s15 + 1 * (1 + n + 0), n >= 0, n' >= 0, z' = 1 + n + (1 + n' + x''), x'' >= 0
reverse(z') -{ 3 }→ s6 :|: s6 >= 0, s6 <= 1 * 0 + 1 * (1 + (z' - 1) + 0), z' - 1 >= 0
reverse(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 1 }→ 0 :|: z' = 0
shuffle(z') -{ 7 + s17 + 3·x1 + 2·x12 }→ 1 + n + shuffle(s18) :|: s17 >= 0, s17 <= 1 * x1, s18 >= 0, s18 <= 1 * s17 + 1 * (1 + n'' + 0), n >= 0, x1 >= 0, n'' >= 0, z' = 1 + n + (1 + n'' + x1)
shuffle(z') -{ 2 }→ 1 + (z' - 1) + shuffle(0) :|: z' - 1 >= 0
minus: runtime: O(n1) [1 + z''], size: O(n1) [z'] concat: runtime: O(n1) [1 + z'], size: O(n1) [z' + z''] app: runtime: O(n1) [1 + z'], size: O(n1) [z' + z''] quot: runtime: O(n2) [1 + 2·z' + z'·z''], size: O(n1) [z'] less_leaves: runtime: O(n2) [1 + 3·z' + z'·z'' + z'2], size: O(1) [1] reverse: runtime: O(n2) [4 + 3·z' + 2·z'2], size: O(n1) [z'] shuffle: runtime: O(n3) [1 + 9·z' + 4·z'2 + 2·z'3], size: O(n1) [z'] |